package com.pureut.production.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pureut.production.domain.DegreasOutput;
import com.pureut.production.domain.dto.DegreasDocumentDto;
import com.pureut.production.domain.dto.DegreasOutputDto;
import com.pureut.production.domain.dto.OutputStatisticsDto;
import com.pureut.production.domain.dto.ScanInDto;
import com.pureut.production.domain.vo.DegreasOutputDetailVo;
import com.pureut.production.domain.vo.DegreasOutputVo;
import com.pureut.production.domain.vo.ScanInVo;
import com.pureut.production.domain.vo.WasteTubeVo;

import java.util.List;

/**
 * 脱脂产出service
 */
public interface DegreasOutputService extends IService<DegreasOutput> {

    /**
     * 脱脂产出列表
     */
    List<DegreasOutputDto> getList(DegreasOutputVo degreasOutputVo);

    /**
     * 脱脂产出新增
     */
    boolean addDegreasOutput(DegreasOutputVo degreasOutputVo);

    /**
     * 产出
     */
    boolean outPut(DegreasOutputDetailVo degreasOutputDetailVo) throws Exception;

    /**
     * 扫描入库
     */
    ScanInDto scanIn(ScanInVo scanInVo) throws Exception;

    /**
     * 废料打印
     */
    WasteTubeVo wastePrint(WasteTubeVo wasteTubeVo) throws Exception;

    /**
     * 单据完成
     */
    boolean documentsFinish(Long id);

    /**
     * 查看
     */
    DegreasDocumentDto getView(Long id);

    /**
     * 产出统计
     */
    List<OutputStatisticsDto> outputStatistics(long id);
}
